home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / comm / tlx_sq21.zip / QDIAL.SLT < prev    next >
Text File  |  1992-03-20  |  8KB  |  226 lines

  1. //-----------------------------------------------------------
  2. // QDIAL.SL? Quick Dial or (if online) option setting.
  3. //
  4. // Hint: Define a softkey to trigger this file (use ALT-K).
  5.  
  6. // Please look at the comments through the whole file, and modify to
  7. // suit your needs, BEFORE you use it. Then recompile with CS QDIAL.
  8. //-----------------------------------------------------------
  9.  
  10. // If you have suggestions for improving this script, please suggest
  11. // improvements to me via old-fashioned snail-mail to:
  12.  
  13. // Author:  Inge Vabekk
  14. //          Hamangskogen 108
  15. //          N-1300 SANDVIKA
  16. //          NORWAY
  17. //          tel. (472) 546 396
  18.  
  19. str line     [80]       
  20.    ,name     [64]       
  21.    ,version    []= "1234567890"
  22.    ,display    []= "DISPLAY"      // Display script.
  23.    ,getname    []= "GETNAME"      // Get Name script.
  24.    ,global     []= "GLOBAL"
  25.    ,ring       []= "RING"         // Script to do the actual calling.
  26.    ,exit       []= "EXIT"         // Name of EXIT script.
  27.    ,ssl        []= "SSL"          // Name of SSL script.
  28.    ,bbsname    []= "BNAME"        // Global for
  29.    ,change     []= "CHANGE"       // Defined if status display changed.
  30.    ,prompt     []= "PROMPT"       // Command prompt.
  31.    ,logof      []= "LOGOF"        // Auto logoff Y/N
  32.    ,start      []= "STARTT"       // Start time.
  33.    ,startime [ 8]                 // Start time.
  34.    ,temp     [12]                 // Help string.
  35.    ;
  36.  
  37. int sl;
  38.  
  39. //-----------------------------------------------------------
  40. // Script starts here.
  41. //-----------------------------------------------------------
  42.  
  43. main()
  44. {
  45. int i, col;
  46.  
  47.   entry();
  48.   newdir (_telix_dir); // Make sure we're in the TELIX main directory.
  49.  
  50.   if (!is_loaded(global))              // Global script not loaded:
  51.   { if (call (getname,1))              // Call the GetName script.
  52.     { tone (80,80);                    // No success:
  53.       clear_scr();                       
  54.       box (17,7,58,14,176,1,15);
  55.       box (19,8,56,13,177,1,15);         
  56.       box (21,9,54,12,178,1,15);         
  57.       pstraxy (" USER DATA OR SCRIPT NOT FOUND! ",22,10,79);
  58.       pstraxy (" Edit user data file and retry! ",22,11,79);
  59.       gotoxy (0,24);                     
  60.       i = -1;                            
  61.       goto quit;                         
  62.     }
  63.     getenv ("BBSNAME",name);           // Get name of BBS to call.
  64.     if (name > " ")                    // Auto logoff if name given.
  65.       call (global,"W",logof,"YES");
  66.     else
  67.       call (global,"W",logof,"NO");
  68.   }
  69.   else
  70.     name = "";                         // Not first time: Forget name.
  71.  
  72.   call (global,"W",change,"NO");
  73.   call (display);                      // Update status.
  74.   keyset (0x1000,0,"@Logoff");         // Set the Alt-Q key.
  75.  
  76. // Get version number.
  77.  
  78.   i = fopen("$SQUARE$.DAT","r");
  79.   if (i <= 0) 
  80.     version="2.1α";
  81.   else
  82.   { if (fgets(version,10,i) <= 0)      // Read a line.
  83.       version="2.1α";
  84.     fclose(i);                         // Close the file again.
  85.   }
  86.  
  87.   sl = 1 - (call (ssl))/24;            // Starting line is 1 or 0
  88.                                        // (according to status line)
  89.   while (!name)
  90.   { _back_color = 0;
  91.     _fore_color = 1;
  92.     col = _back_color*16 + _fore_color;
  93.     clear_scr();
  94.     pstraxy ("▓▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▒       ▓▓▒ ▓▓▓▒    ▓▓▓▒",1,sl+1,col);
  95.     pstraxy ("   ▓▓▒    ▓▓▒       ▓▓▒       ▓▓▒   ▓▓▒  ▓▓▒  ",1,sl+2,col);
  96.     pstraxy ("   ▓▓▒    ▓▓▓▓▓▓▒   ▓▓▒       ▓▓▒    ▓▓▓▓▓▒   ",1,sl+3,col);
  97.     pstraxy ("   ▓▓▒    ▓▓▒       ▓▓▒       ▓▓▒   ▓▓▒  ▓▓▒  ",1,sl+4,col);
  98.     pstraxy ("   ▓▓▒    ▓▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▒ ▓▓▓▒    ▓▓▓▒",1,sl+5,col);
  99.     pstraxy ("    ▒▒     ▒▒▒▒▒▒▒▒  ▒▒▒▒▒▒▒▒  ▒▒  ▒▒▒     ▒▒▒",1,sl+6,col);
  100.                                                                           
  101.     pstraxy (" ▓▓▓▓▓▓▒  ▓▓▓▓▓▓▒  ▓▓▒   ▓▓▒  ▓▓▓▓▓▓▒  ▓▓▓▓▓▓▒   ▓▓▓▓▓▓▓▒",19,sl+18,col);
  102.     pstraxy ("▓▓▒      ▓▓▒   ▓▓▒ ▓▓▒   ▓▓▒ ▓▓▒   ▓▓▒ ▓▓▒  ▓▓▒  ▓▓▒     ",19,sl+19,col);
  103.     pstraxy (" ▓▓▓▓▓▓▒ ▓▓▒   ▓▓▒ ▓▓▒   ▓▓▒ ▓▓▓▓▓▓▓▓▒ ▓▓▓▓▓▓▒   ▓▓▓▓▓▒  ",19,sl+20,col);
  104.     pstraxy ("      ▓▓▒▓▓▒  ▓▓▓▒ ▓▓▒   ▓▓▒ ▓▓▒   ▓▓▒ ▓▓▒  ▓▓▒  ▓▓▒     ",19,sl+21,col);
  105.     pstraxy (" ▓▓▓▓▓▓▒  ▓▓▓▓▓▒▓▓▒ ▓▓▓▓▓▓▒  ▓▓▒   ▓▓▒ ▓▓▒   ▓▓▒ ▓▓▓▓▓▓▓▒",19,sl+22,col);
  106.     pstraxy ("  ▒▒▒▒▒▒   ▒▒▒▒▒ ▒▒  ▒▒▒▒▒▒   ▒▒    ▒▒  ▒▒    ▒▒  ▒▒▒▒▒▒▒",19,sl+23,col);
  107.     
  108.     _back_color = 4;
  109.     _fore_color = 15;
  110.     col = _back_color*16 + _fore_color;
  111.     box (64,sl+1,75,sl+5,2,0,col);
  112.     box (4,sl+18,15,sl+22,2,0,col);
  113.  
  114.     _back_color = 1;
  115.     _fore_color = 7;
  116.     col = _back_color*16 + _fore_color;
  117.     box (20,sl+7,63,sl+16,2,0,col);
  118.     box (18,sl+8,61,sl+15,2,0,col);
  119.     box (16,sl+9,59,sl+14,2,0,col);
  120.  
  121.     col = _fore_color*16 + _back_color;
  122.     pstraxy ("Telix_Square version ",22,sl+8,col);
  123.     pstraxy (version,43,sl+8,col);
  124.     pstraxy ("by Inge Vabekk",44,sl+15,col);
  125.     pstraxy ("Type (part of) BBS name to dial or",21,sl+10,col);
  126.     pstraxy ("'@list' ('list' contains names) or",21,sl+11,col);
  127.     pstraxy ("'D' (alone) for dialing directory:",21,sl+12,col);
  128.     _back_color = 4;
  129.     _fore_color = 15;
  130.     col = _back_color*16 + _fore_color;
  131.     pstraxy (".........................",25,sl+13,col);
  132.  
  133.     gotoxy(25,sl+13);
  134.     update_term();
  135.  
  136.     gets(name,25);                       // Get the name. 
  137.  
  138.     for (i=strlen(name)-1; i>=0; --i)
  139.     { if (subchr(name,i) > '.') break;   // Strip off spaces.
  140.       setchr(name,i,0);
  141.     }
  142.     blue();
  143.  
  144.     if (name=="D" || name=="d")          // Dialing dir. requested?
  145.     { _qdbar_on = 0;                     // So 
  146.       dial ("",5,0);                     // display dialing directory.
  147.       i = 0;                             // Abort requested.
  148.     }
  149.     if (i < 1) goto quit;                // Abort?
  150.   }
  151.   call (global,"W",bbsname,name);        // Set name of BBS to call.
  152.  
  153.   if (call (global,"R",start,startime) < 0) // Get start time.
  154.   { if (getenv ("SQRTIME",startime))     // Get start time for calling.
  155.     { _scr_chk_key = 0;                  // Check that time string is legal.
  156.       time (curtime(),temp);             // Get the time.
  157.       i = subchr (temp,2);               // Get time separator.
  158.       if (!isdigit(subchr(startime,0))) goto dcall;
  159.       if (!isdigit(subchr(startime,1))) goto dcall;
  160.       if (subchr(startime,2)!=i)  goto dcall;
  161.       if (!isdigit(subchr(startime,3))) goto dcall;
  162.       if (!isdigit(subchr(startime,4))) goto dcall;
  163.       setchr(startime,5,i);
  164.       setchr(startime,6,0);
  165.       clear_scr();                       
  166.       box ( 8,6,60,14,2,0,15);
  167.       box (10,7,58,13,2,0,15);
  168.       box (12,8,56,12,2,0,15);
  169.       pstraxy ("  Waiting till clock strikes 00:00:00 ...  ",13,10,116);
  170.       pstraxy (startime,42,10,116);
  171.       do
  172.       { time (curtime(),temp);           // Get the time.
  173.         pstraxy (temp,30,11,113);
  174.         pstraxy ("",0,0,17);
  175.         delay(5);                        // Wait 1/2 sec.
  176.         if (inkey()==27) break;
  177.         setchr(temp,6,0);
  178.       } while (startime != temp);        // Not ready yet?
  179.       call (global,"W",start,"!");       // No more timed start.
  180.     }
  181.   }
  182.  
  183. dcall:
  184.   call (ring,sl);
  185.   call (global,"R",exit,line);
  186.   if (strposi (line,"YES",0) >= 0)
  187.     exittelix (0,1);                     // Exit.
  188.  
  189. quit:
  190.   message();                             // Write message,
  191.   keyset (0x1000,0,"@Qdial");            // Restore the Alt-Q key.
  192.   return (0);
  193. }
  194.  
  195. //-----------------------------------------------------------
  196. // This routine writes a string to the screen (in color).
  197. //-----------------------------------------------------------
  198.  
  199. message ()
  200. { int lines;
  201.   lines = call (ssl);
  202.   pstraxy (" Alt-Q to quick-dial again. ",0,lines,15);
  203.   gotoxy (0,1-lines/24);
  204. }
  205.  
  206. //-----------------------------------------------------------
  207. // Routine to clear the screen.
  208. //-----------------------------------------------------------
  209.  
  210. blue ()
  211. {
  212.   entry();
  213.   clear_scr();
  214. }
  215.  
  216. //-----------------------------------------------------------
  217. // Routine to update colors and status bar.
  218. //--------------------------------